package com.indexingsystem.system.service;

import java.util.List;

import com.indexingsystem.boss.Vo.MagazinesQueryVo;
import com.indexingsystem.boss.Vo.MagazinesReqVo;
import com.indexingsystem.boss.Vo.MagazinesTableVo;
import com.indexingsystem.boss.Vo.OrderExportMagazinesQueryVo;
import com.indexingsystem.boss.Vo.OrderMagazinesVo;
import com.indexingsystem.boss.common.PagedResult;
import com.indexingsystem.boss.entity.AuditLogs;
import com.indexingsystem.boss.entity.DhTodayStorageInfos;
import com.indexingsystem.boss.entity.Magazines;

public interface IMagazinesService {

	/**
	 * 通过报刊id删除报刊.
	 * 
	 * @param resId
	 * @return
	 */
	int deleteByPrimaryKey(String resId) throws Exception;

	int deleteMagazinesByIdBatch(List<String> resIdList) throws Exception;

	/**
	 * 新增报刊信息.
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(Magazines record) throws Exception;

	/**
	 * 新增期刊信息.
	 * 
	 * @param MagazinesReqVo
	 * @return
	 */
	int addMagazinesInfo(MagazinesReqVo MagazinesReqVo,AuditLogs auditLogs,DhTodayStorageInfos todayStorageInfos) throws Exception;
	
	/**
	 * 新增期刊信息.
	 * 
	 * @param MagazinesReqVo
	 * @return
	 */
	int updateMagazinesInfo(MagazinesReqVo MagazinesReqVo) throws Exception;

	/**
	 * 获取期刊总数量.
	 * 
	 * @param magazinesQueryVo
	 * @return
	 */
	Integer getMagazinesListCount(MagazinesQueryVo magazinesQueryVo);

	/**
	 * 分页查询报刊信息.
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	PagedResult<MagazinesTableVo> selectMagazinesList(MagazinesQueryVo magazinesQueryVo);
	/**
	 * 分页查询报刊信息.
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	MagazinesTableVo selectMagazinesById(String resId);
	/**
	 * 通过报刊id查询报刊信息.
	 * 
	 * @param resId
	 * @return
	 */
	Magazines selectByPrimaryKey(String resId);
	
	
	/**
	 * 通过资源分类id和订购的开始年份及结束年份
	 * @param magazinesYearListReqVo
	 * @return
	 */
	List<Magazines> getMagazinesListByResCategoryIdOrYear(OrderMagazinesVo orderMagazinesVo);

	/**
	 * 修改报刊信息.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(Magazines record) throws Exception;
	
	   /**
     * 根据订单资源分类列表、开始年份、结束年份查询订单所有资源的期刊资源列表.
     * @param orderExportMagazinesQueryVo
     * @return
     */
    List<Magazines> getOrderMagazinesResListByResCategoryId(OrderExportMagazinesQueryVo orderExportMagazinesQueryVo);
    
  void addMagazinestest();
}